Color printers that execute color matching processing using an ICC profile or the like have come into widespread use in recent years. Color matching refers to a technique for implementing device-independent color reproduction by effecting a mutual conversion between device-independent color space and device-specific color space.
In an ordinary printer, color matching processing is executed in accordance with a drawing object and it is contrived to achieve optimum color reproduction at all times. Examples of drawing objects processed by a color printer are geometric objects such as single lines and polygons and image data consisting of pixels. Color information is specified in some form for each of these objects. When an object is drawn, a drawing engine within the printer first executes color matching processing based upon the specified color information and then performs drawing successively to a rasterizing window or expansion area of a band memory or the like.
For example, in a case where a red triangle is drawn, a red (255, 0, 0) color is converted temporarily to device-independent color-space values by referring to a source profile. Next, based upon these device-independent color-space values, values in the output device (device values) are calculated by referring to a profile on the destination side, and these values are reported to the drawing engine to execute drawing.
An example of a method used to effect the color conversion is to embed data in a LUT constituted by a sample grid and estimate approximate values using linear calculation or the like such as 8-point interpolation. The interpolation operation is carried out by applying procedures 1), 2) below to each point and applying procedure 3) to the last point.                1) Li=Pi+dPi*rateX {for each point}        2) Mi=Li+dLi*rateY {for each point}        3) Pi=Mi+dMi*rateZ {for last point}        
Consider a case where the drawing object is so-called gradation accompanying a change in color. For example, consider a line object that changes from red to black from its starting point V1 to its end point V2. In such case it is required that color conversion processing be executed in accordance with a position of Vi on a drawn line, as illustrated in FIG. 1. If a change of the position on Y axis (y1-y2) is gentle with respect to a change of the position on X axis (x2-x1), in this case, i.e., if the value of y1-y2 is extremely small, there are instances where the result of the color conversion will not attain the desired value owing to quantization error in the computer.